1. Field of the Invention
This invention relates to high-speed serial data links, and particularly to a method for measuring a data lock time in high-speed serial data links.
2. Description of Background
Lock time is the time required for a serial data receiver to recognize and commence recovering clock and data from an incoming serial data stream within a specified bit error rate tolerance. Once a lock is achieved, parallel data serialization from the incoming stream is considered valid, and serial communications are established.
In circuits, such as Fabric Switches, where high-speed multiplexing between different serial data sources is critical, it is important to be able to efficiently measure the worst-case data lock time. In fact, at least one industry standard specifies a maximum lock time for compliant receivers. Customer logic is also dependent on data lock time and is generally delayed, usually by a much longer time than the maximum lock time, in order to ensure data lock has been achieved prior to recognizing valid communications.
However, data lock time is difficult to measure accurately. In traditional systems, a 2× oversampling of a serial bit stream is common in order to save power. Nevertheless, a 2× oversampling method results in data falsely appearing to be locked for perhaps hundreds of bit times as the clocking mechanism attempts to find a stable phase relationship. If the downstream logic erroneously commences to process this data, assuming a valid lock, corruption of the data is highly possible.
Although it is very useful to be able to accurately measure the maximum lock time, most traditional methods are fairly inaccurate. In general, given two independent or phase shifted serial data streams, multiplexed into a single serial link receiver input, lock time is measured by switching between the serial input streams and determining how long the receiver takes to output valid data from its new input. The multiplexing step, though challenging to perform, is generally accomplished by available off-the-shelf components. However, accurate and appropriate detection of valid data at the output of the serial link under test is quite difficult to achieve.
A significant amount of serial link testing involves the use of a BIT Error Rate Tester (BERT). This is a piece of equipment that produces a high fixed frequency or pseudo random serial data stream that is fed through a serial link under test and back to the BERT. The BERT then provides an error output, which indicates when the received data stream differs from what was transmitted. Nevertheless, the BERT is not very accurate in measuring data lock time because the BERT takes a significant amount of time to lock onto a new incoming data stream, thereby swamping the actual lock time delay with inherent equipment delays.
Another traditional method of measuring lock time requires the use of 8B/10B decoders to approximate a measurement. In this method, the incoming data streams are limited to valid 8B/10B encoded bytes. As in the first traditional method, the multiplexed data stream is fed through the serial link under test. The output is then passed through an 8B/10B decoder. Because the decoder detects 8B/10B protocol violations, its error output is examined to approximate the period where the serial link is not locked. By manually analyzing the error output data for periods where burst of bits occurred, lock time is then approximated. However, this second traditional method of measuring lock time has several disadvantages. These disadvantages include: (1) requiring significant and time consuming post processing of the output data, (2) the method is limited to valid 8B/10B coding, and (3) not all bit errors produce 8B/10B code violations.
Considering the limitations of the aforementioned methods, it is clear that there is a need for an efficient method for measuring data lock time.